﻿<%@ Page Title="" Language="C#" MasterPageFile="~/Master/Site.master" AutoEventWireup="true" CodeFile="Frm_Proyecto.aspx.cs" Inherits="Views_AdminEscenarios_Frm_Proyecto" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
<input id="hd_idProyecto" runat="server" type="hidden"/>
<input id="hd_PrecioMin" runat="server" type="hidden"/>
<input id="hd_PrecioMax" runat="server" type="hidden"/>
<div class="well">
<div id="validator" class="row">

<div class="span5">

    <fieldset>
        <div class="form-horizontal">

         <div class="control-group">
                <label class="control-label" for="idProyecto">Código del Proyecto: </label>
                <div class="controls">
                    <label id="idProyecto"></label>
                </div>
            </div>
            <div class="control-group">
                <label class="control-label" for="txtNombreComp">Nombre Proyecto: </label>
                <div class="controls">
                    <input type="text" class="span3" id="txtNombreProy" placeholder="Nombre Proyecto"  name="Nombre Proyecto" validationMessage="Nombre Proyecto es requerido!" required />
                    
                </div>
            </div>
        </div>
    </fieldset> 
    
</div>
<div class="span6">
    <fieldset>
        <div class="form-horizontal">
            <div class="control-group">
                <label class="control-label" for="txtNombreComp">Descripción del Proyecto: </label>
                <div class="controls">
                    <textarea id="taDescripcion" rows="3" class="span4" name="Descripción Proyecto" validationMessage="Descripción Proyecto es requerido!" required ></textarea>
                </div>
            </div>	
        </div>
    </fieldset> 
</div>
</div>
<div class="center">
            <button id="btn_NuevoProyecto" class="btn">Crear</button>
                    <a href="<%=ResolveClientUrl("~/Views/General/Frm_NuevoGrupo.aspx" ) %>" id="btn_agregarGrupos" class="btn" style="display:none;">Agregar Grupo</a>
           </div>
</div>
<div id="grid"></div>
<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
 <div class="modal-header">
   <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
   <h3 id="myModalLabel">Items </h3>
 </div>
 <div class="modal-body">
    <div id="validacionModal" class="form-horizontal">
       <div class="control-group">
           <label class="control-label span3" for="txtTexto" id="lblTexto"> </label>
           <div class="controls">
           <input type="text" id="txtNumero" placeholder="Numero Abonado" name="cantidad" validationMessage="Ingrese cantidad" required />
           </div>
       </div>        
    </div>
 </div>
 <div class="modal-footer">
   <button class="btn" data-dismiss="modal" aria-hidden="true">Cerrar</button>
   <button id="saveSelection" class="btn btn-primary">Grabar Cambios</button>
 </div>
</div>

<asp:ScriptManager ID="ScriptManager1" runat="server" />
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ScriptContent" Runat="Server">

<script type="text/javascript">
    var PrecioTotalMax, PrecioTotalMin;
    function pageLoad() {
        var id = $("#<%=hd_idProyecto.ClientID %>").val();
        if (id) {
            $("#idProyecto").text(id);
            $("#btn_agregarGrupos").show();
            $("#btn_NuevoProyecto").hide();
            LoadProyecto(id);
        }
    }

    $(document).ready(function () {
        PrecioTotalMax = 0;
        PrecioTotalMin = 0;
        $("#btn_NuevoProyecto").on("click", function () {
            var validator = $("#validator").kendoValidator().data("kendoValidator");
            if (validator.validate() != true) {
                return false;
            }
            $.ajax({
                type: "POST",
                url: "Frm_Proyecto.aspx/InsertarProyecto",
                data: kendo.stringify({ nombre: $("#txtNombreProy").val(), descripcion: $("#taDescripcion").val() }),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    if (data.d == "null")
                        return;
                    if (data.d) {
                        var num = data.d;
                        $("#idProyecto").text(num);
                        $("#btn_agregarGrupos").show();
                        $("#btn_NuevoProyecto").hide();
                        alert("Proyecto Grabado Correctamente!.")
                    }
                },
                error: function (data) {
                    alert("Ocurrio un Error al Grabar Proyecto.");
                }
            });
            //alert("validado");
            return false;
        });
    });

    function LoadProyecto(id) {
        $.ajax({
            type: "POST",
            url: "Frm_Proyecto.aspx/ObtenerProyectoDatos",
            data: kendo.stringify({ idProyecto: id }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                if (data.d == "null")
                    return;
                if (data.d) {
                    var ProyectoDatos = data.d;
                    //debugger;
                    $("#txtNombreProy").val(ProyectoDatos.Proyecto.Nombre);
                    $("#taDescripcion").val(ProyectoDatos.Proyecto.Descripcion);
                    loadGrupos(id);
                    //alert("Proyecto Cargado Correctamente!.")
//                    window.setTimeout(function () {
//                        //debugger;
//                        var element = $("#grid").data("kendoGrid");
//                        $(element.footer.find("td")[3]).append(PrecioTotalMin);
//                        $(element.footer.find("td")[4]).append(PrecioTotalMax);
//                    }, 2000);

                }
            },
            error: function (data) {
                alert("Ocurrio un Error al Cargar Proyecto.");
            }
        });
    }

    function loadGrupos(id) {
        var element = $("#grid").kendoGrid({
            //toolbar: [{ template: kendo.template($("#template").html()) }],
            dataSource: {
                type: "json",
                transport: {
                    read: {
                        type: "POST",
                        url: "Frm_Proyecto.aspx/ObtenerGrupos",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json"
                    },
                    parameterMap: function (parametros) {
                        return kendo.stringify({ idProyecto: id })
                    }
                },
                schema: {
                    data: "d",
                    total: "d.length",
                    model: {
                        fields: {
                            IdGrupo: { type: "number", editable: false },
                            Nombre: { type: "string", editable: false },
                            PrecioTotalMinimo: { type: "number" ,editable:false},
                            PrecioTotalMaximo: { type: "number", editable: false },
                            FecCre: { type: "date", editable: false },
                            FecMod: { type: "date", editable: false }
                        }
                    }
                },
                aggregate: [{ field: "PrecioTotalMinimo", aggregate: "sum" },
                                { field: "PrecioTotalMaximo", aggregate: "sum"}]
                //,pageSize: 5
            },
//            excelExport: function (e) {
//                e.workbook.fileName = "Grid.xlsx";
//            },
            //height: 600,
            editable: {
                confirmation: "Esta Seguro de Eliminar el Registro?"
            },
            toolbar: [
               { template: '<a class="k-button" href="\\#" onclick="return toolbar_click()">Excel</a>' },
               { template: '<a class="k-button right" id="idbtnRatio" href="\\#" onclick="return indicador_click()">Calcular ratios</a>' },
               { template: '<label class="ratio-label" id="lbRatioMax"></label>' },              
               { template: '<label class="ratio-label" id="lbRatioMin"></label>' }              
               ],
            sortable: true,
            pageable: false,
            detailInit: detailInit,
            remove:BorrarGrupo,
            dataBound: function () {
                //this.expandRow(this.tbody.find("tr.k-master-row").first());
                this.expandRow(this.tbody.find("tr.k-master-row"));
            },
            columns: [
                { field: "IdGrupo", title: "ID", width: "40px" },
                { field: "Nombre", title: "Nombre"
                    //,width: "110px"
                },
                { field: "PrecioTotalMinimo", title: "Precio Total Mínimo", format: "{0:c}", aggregates: ["sum"], footerTemplate: "Total Mínimo:  <span id='precioMin'>" },
                { field: "PrecioTotalMaximo", title: "Precio Total Máximo", format: "{0:c}", aggregates: ["sum"], footerTemplate: "Total Máximo:  <span id='precioMax'>" },
                { command: [{ click: EditarGrupo, name: "edit", text: "Editar" }, { name: "destroy", text: "Borrar"}], width: "160px" }
            ]
        }).data("kendoGrid");
        debugger;
        //element.refresh();
        $("#precioMax").html(kendo.toString(PrecioTotalMax, '0.00'));
    }
    function EditarGrupo(e) {
        var tr = $(e.target).closest("tr");
        var data = this.dataItem(tr);
        debugger;
    }
    function BorrarGrupo(e) {
        //window.console.log("Borrado", e.model.IdGrupo);
        debugger;
        $.ajax({
            type: "POST",
            url: "Frm_Proyecto.aspx/BorrarGrupo",
            data: kendo.stringify({ idGrupo: e.model.IdGrupo }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                if (data.d == "null")
                    return;
                if (data.d == "OK") {
                    alert("Se Elimino Correctamente el Grupo.");
                }
            },
            error: function (data) {
                alert("Ocurrio un Error al Borrar Grupo.");
            }
        });
    }
    function toolbar_click() {
        //debugger;
        var datos = $("#grid").data("kendoGrid");
        $.ajax({
            type: "POST",
            url: "Frm_Proyecto.aspx/DatosAExcel",
            data: kendo.stringify({ datos: datos.dataSource.data() }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                if (data.d == "null")
                    return;
                if (data.d) {
                    var datos = data.d;
                    alert("Se Generó Excel Correctamente.");
                }
            },
            error: function (data) {
                alert("Ocurrio un Error al Generar Excel.");
            }
        });
        return false;
    }
    function detailInit(e) {
        ////debugger;
        $("<div/>").appendTo(e.detailCell).kendoGrid({
            dataSource: {
                type: "json",
                transport: {
                    read: {
                        type: "POST",
                        url: "Frm_Proyecto.aspx/ObtenerGrupoItems",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json"
                    },
                    parameterMap: function (parametros) {
                        return kendo.stringify({ idGrupo: e.data.IdGrupo })
                    }
                },
                schema: {
                    data: "d",
                    total: "d.length",
                    model: {
                        fields: {
                            PrecioTotalMinimo: { type: "number"},
                            PrecioTotalMaximo: { type: "number"},
                            FecCre: { type: "date" },
                            FecMod: { type: "date" }
                        }
                    }
                },
                aggregate: [{ field: "PrecioTotalMinimo", aggregate: "sum" },
                                { field: "PrecioTotalMaximo", aggregate: "sum"}]
                //,pageSize: 5
            },
            scrollable: false,
            sortable: false,
            pageable: false,
            //toolbar: [ { template: '<a class="k-button" href="\\#" onclick="return Editar_click()">Editar Grupo</a>' } ],
            columns: [
            { field: "IdGrupoDetalle", title: "ID" },
            { field: "IdComponenteDesc", title: "Componente", width: "450px" },
            //{ field: "IdGrupo", title: "Grupo", width: "110px"  },
            { field: "Cantidad", title: "Cantidad", width: "90px" },
            { field: "PrecioTotalMinimo", title: "Precio Total Mínimo", format: "{0:c}", aggregates: ["sum"], footerTemplate: "Sub Total: #=kendo.toString(getValueShowMin(data), '0.00')#", width: "150px"
            },
            { field: "PrecioTotalMaximo", title: "Precio Total Máximo", format: "{0:c}", aggregates: ["sum"], footerTemplate: "Sub Total: #=kendo.toString(getValueShowMax(data), '0.00')#", width: "150px"
            },
            { field: "UsuCre", title: "Usuario Reg" },
            { field: "FecCre", title: "Fecha Reg", format: "{0:dd/MM/yyyy}" },
            { field: "UsuMod", title: "Usuario Mod" },
            { field: "FecMod", title: "Fecha Mod", format: "{0:dd/MM/yyyy}"}]
        });
    }
    
    function getValueShowMin(data) {
        //debugger;
        PrecioTotalMin = PrecioTotalMin + data.PrecioTotalMinimo.sum;
        $("#precioMin").html(PrecioTotalMin);
        return data.PrecioTotalMinimo.sum;
    }
    function getValueShowMax(data) {
        //debugger;
        PrecioTotalMax = PrecioTotalMax + data.PrecioTotalMaximo.sum;
        $("#precioMax").html(PrecioTotalMax);
        return data.PrecioTotalMaximo.sum;
    }

    function indicador_click() {

        var id = $("#<%=hd_idProyecto.ClientID %>").val();    
        debugger;
        console.log("Indicador is clicked!");
        var datos = $("#grid").data("kendoGrid");
        $.ajax({
            type: "POST",
            url: "Frm_Proyecto.aspx/ContieneTipoAcceso",
            data: kendo.stringify({ idProyecto: id }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                if (data.d == true) {
                    $("#lblTexto").text("Ingrese cantidad de abonados");
                    $('#myModal').modal('show');                                        
                } 
                                
                else {
                    $("#lblTexto").text("Ingrese la distancia en KM");
                    $('#myModal').modal('show');                
                }
            },
            error: function (data) {
                alert("Ocurrio un Error ");
            }
        });
        return false;
    }
    $("#saveSelection").bind("click", function () {
        
        var validator = $("#validacionModal").kendoValidator().data("kendoValidator");
        if (validator.validate() != true) {
            return false;
        }
        var ratMax = parseFloat($("#precioMax").text()) / parseInt($("#txtNumero").val());
        var ratMin = parseFloat($("#precioMin").text()) / parseInt($("#txtNumero").val());

//        $("#lbRatio").text("[RATIO-MAX:" + parseFloat(ratMax).toFixed(2) + "][RATIO-MIN:" + parseFloat(ratMin).toFixed(2) + "]");        

        $("#lbRatioMax").text("[RATIO-MAX : $ " + parseFloat(ratMax).toFixed(2) + "]");
        $("#lbRatioMin").text("[RATIO-MIN : $ " + parseFloat(ratMin).toFixed(2) + "]");

        $('#myModal').modal('hide');

        return false;
    });

    
</script>
</asp:Content>

